Unless otherwise indicated herein, known approaches described are not admitted to be prior art by inclusion throughout the present disclosure.
Communications networks are generally packet-switched networks that operate based on Internet Protocol (IP). When one host has a large amount of data to send to another host, the data may be transmitted as a series of packets. For example, transmission Control Protocol (TCP) enables two hosts (also called “endpoints” or “endpoint devices”) to establish a network connection and exchange streams of data. Both IP and TCP define size limits for packets transmitted over a network. For example, a maximum transmission unit (MTU) may be configured for a network interface to set the maximum size of IP packet that can be transmitted via the network interface.
For example, a Maximum Segment Size (MSS) value may be used to define the maximum number of data bytes in a packet (e.g., excluding the TCP/IP headers) that a host device can receive in a single, unfragmented piece. If the MSS value is set too high, packets that are too large to send will require fragmentation and reassembly. Fragmenting a packet generally involves dividing the packet into smaller fragments, which causes more overhead to wait until all fragments are received and to reassemble the fragments. Since each fragment generally has the same header overhead as the original packet, the total number of bytes that needs to be transmitted also increases. On the other hand, an MSS value that is set too low may result in an inefficient use of the available bandwidth.